
cmake_minimum_required(VERSION 3.10) 


find_package(LLVM REQUIRED CONFIG) 
# Needed to use support library 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -std=c++14") 

include_directories(${LLVM_INCLUDE_DIRS}) 
add_definitions(${LLVM_DEFINITIONS}) 

# aux_source_directory(. DIR_IMPL_SRCS)
# add_library(hi_findfunctions ${DIR_IMPL_SRCS})

# include_directories(./ ./HI_FindFunctions ./HI_print)
add_subdirectory(HI_FindFunctions)
add_subdirectory(HI_print)
add_subdirectory(HI_DependenceList)
add_subdirectory(HI_SysExec)
add_subdirectory(HI_LoopInFormationCollect)
add_subdirectory(HI_Polly_Info)
add_subdirectory(HI_LoopDependenceAnalysis)
add_subdirectory(HI_SimpleTimingEvaluation)
add_subdirectory(HI_GEP_OffsetCombine)
add_subdirectory(HI_DuplicateInstRm)
add_subdirectory(HI_VarWidthReduce)
add_subdirectory(HI_SeparateConstOffsetFromGEP)
add_subdirectory(HI_APIntSrcAnalysis)
add_subdirectory(HI_NoDirectiveTimingResourceEvaluation)
add_subdirectory(HI_IntstructionMoveBackward)
add_subdirectory(HI_HLSDuplicateInstRm)
add_subdirectory(HI_AggressiveLSR_MUL)
add_subdirectory(HI_ArrayAccessPattern)
add_subdirectory(HI_WithDirectiveTimingResourceEvaluation)
add_subdirectory(HI_StringProcess)
add_subdirectory(HI_FunctionInstantiation)
add_subdirectory(HI_ReplaceSelectAccess)
add_subdirectory(HI_IR2SourceCode)
add_subdirectory(HI_LoopUnroll)
add_subdirectory(HI_RemoveRedundantAccess)
add_subdirectory(HI_LoopLabeler)
add_subdirectory(HI_FunctionInterfaceInfo)
add_subdirectory(HI_Mul2Shl)
add_subdirectory(HI_MulOrderOpt)
add_subdirectory(HI_MuxInsertionArrayPartition)
add_subdirectory(HI_LoadALAP)
add_subdirectory(HI_PragmaTargetExtraction)
add_subdirectory(HI_ArraySensitiveToLoopLevel)
add_subdirectory(HI_TopLoop2Func)
add_subdirectory(HI_ConstantDivisorOpt)